<?php

require_once( "dateclass.php" );

# calendar class
# coded by Alessandro Rosa
# e-mail : zandor_zz@yahoo.it
# site : http://malilla.supereva.it

# Copyright (C) 2006  Alessandro Rosa

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

# Compiled with PHP 4.4.0

$seasons_colors = array( 1 => "#0066FF", 
                         2 => "#ff3300",
                         3 => "#CD3278",
                         4 => "#00ff00",
                         5 => "#B22222",
                         6 => "#FF6347",
                         7 => "#00C5CD",
                         8 => "#7AC5CD",
                         9 => "#B3EE3A",
                         10 => "#CD9B1D",
                         11 => "#8B0000",
                         12 => "#8B8B00" ) ;

# REMARK : refer to the global arrays in dateclass.php for months and days names ECF1EF

class calendar
{
      function calendar()
      {
      }
      
      function build_it()     
      {
             $dclass = new date();

             echo "<table align=center width=90% class=\"calendar\">";
             
             $a = getdate();
             $this->today_d = $day = $a['mday'] ;
             $week_day = $a['wday'] ;
             $this->today_m = $month = $a['mon'] ;
             $this->today_y = $year = $a['year'] ;
             $this->today_full_name = $GLOBALS['name_days'][$week_day];
             
             $season_clr = $GLOBALS['seasons_colors'][$month] ;
             
             $dclass->set_start_date( 1, $month, $year ) ;
             
             $month_name = $dclass->get_start_month_name();
             $first_day_index = $dclass->get_start_day_index() ;
             
             echo "<tr><td style=\"background-color:$season_clr;\" class=\"month\" colspan=\"7\">$month_name</td></tr>\r\n";
             echo "<tr class=\"weekdays\">\r\n";
             
             if ( $this->bSundayStart === true ) echo "\t\t\t\t<td class=\"weekdays\">".(( $week_day == 0 ) ? "<b>".$GLOBALS['short_name_days']['7']."</b>" : $GLOBALS['short_name_days']['0'])."</td>";
             echo "\t\t\t\t<td class=\"weekdays\">".(( $week_day == 1 ) ? "<b>".$GLOBALS['short_name_days']['1']."</b>" : $GLOBALS['short_name_days']['1'])."</td>";
             echo "\t\t\t\t<td class=\"weekdays\">".(( $week_day == 2 ) ? "<b>".$GLOBALS['short_name_days']['2']."</b>" : $GLOBALS['short_name_days']['2'])."</td>";
             echo "\t\t\t\t<td class=\"weekdays\">".(( $week_day == 3 ) ? "<b>".$GLOBALS['short_name_days']['3']."</b>" : $GLOBALS['short_name_days']['3'])."</td>";
             echo "\t\t\t\t<td class=\"weekdays\">".(( $week_day == 4 ) ? "<b>".$GLOBALS['short_name_days']['4']."</b>" : $GLOBALS['short_name_days']['4'])."</td>";
             echo "\t\t\t\t<td class=\"weekdays\">".(( $week_day == 5 ) ? "<b>".$GLOBALS['short_name_days']['5']."</b>" : $GLOBALS['short_name_days']['5'])."</td>";
             echo "\t\t\t\t<td class=\"weekdays\">".(( $week_day == 6 ) ? "<b>".$GLOBALS['short_name_days']['6']."</b>" : $GLOBALS['short_name_days']['6'])."</td>";
             if ( $this->bSundayStart === false ) echo "\t\t\t\t<td class=\"weekdays\">".(( $week_day == 0 ) ? "<b>".$GLOBALS['short_name_days']['7']."</b>" : $GLOBALS['short_name_days']['0'])."</td>";

             echo "</tr>\r\n";
             echo "\t\t\t\t<tr><td style=\"height:5px;\"></td></tr>\r\n";

             $cell_current_index = ( $this->bSundayStart ) ? $first_day_index : $first_day_index - 1 ;
             $cell_current_index = ( $cell_current_index == 7 ) ? 0 : $cell_current_index ;
             
             echo "<tr>\r\n" ;
             
             for ( $i = 0; $i < $cell_current_index; $i++ )
             {
                 echo "\t<td class=\"calendar\"></td>\r\n" ;
             }
             
             $cell_current_index = $i ;
             
             $month_days = $dclass->get_month_days( $month, $year ) ;
             
             for( $i = 1 ; $i <= $month_days; $i++ )
             {
                 if ( $i == $day ) echo "\t<td style=\"font-weight:bold;\" class=\"calendar\"><font color=#ff3300>$i</font></td>\r\n" ;
                 else echo "\t<td class=\"calendar\">$i</td>\r\n" ;
             
                 $cell_current_index++ ;
             
                 $cell_current_index %= 7 ;
                 
                 if ( $cell_current_index == 0 ) echo "</tr>\r\n\t<tr>\r\n" ;
             }
             
             echo "\t\t\t\t<tr><td style=\"height:5px;\"></td></tr>\r\n";
             
             //if ( $this->get_display_today() ) echo "<tr><td colspan=\"7\" class=\"today\">Today is : ".$this->get_today_full_name()." ".$this->get_today_date()."</td></tr>" ;
             
             echo "</table>\r\n";
      }
      
      function display_english_date( $bED )           { $this->bEngDate = $bED ; }
      function get_display_english_date_opt( $bED )   { return $this->bEngDate ; }

      function get_sunday_start()           { return $this->bSundayStart ; }
      function set_sunday_start( $bS )      { $this->bSundayStart = $bS ;  }

      function get_display_today()          { return $this->bDisplayToday ; }
      function set_display_today( $bDt )    { $this->bDisplayToday = $bDt ; }

      function get_today_date()             { return ( ( $this->bEngDate ) ? $this->today_m."-".$this->today_d : $this->today_d."-".$this->today_m ) . "-".$this->today_y ; }
      function get_today_full_name()        { return $this->today_full_name ; }

      var $bSundayStart = TRUE ;
      var $bDisplayToday = TRUE ;
      var $bEngDate = TRUE ;

      var $today_d ;
      var $today_m ;
      var $today_y ;
      var $today_full_name ;
}
